
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 文件名：password_generator.py
# 描述：生成随机密码的工具类，支持指定密码长度和特殊字符数量
# 作者：Craft
# 日期：2024-01-20

import random
import string

class PasswordGenerator:
    """密码生成器类，用于生成包含特殊字符的随机密码"""
    
    def __init__(self, length=12, special_chars=2):
        """
        初始化密码生成器
        :param length: 密码长度，默认12位
        :param special_chars: 特殊字符数量，默认2个
        """
        self.length = length
        self.special_chars = special_chars
    
    def generate(self):
        """
        生成随机密码
        :return: 生成的随机密码字符串
        """
        # 从特殊字符集合中随机选择指定数量的字符
        special = random.sample('!@#$%^&*()', self.special_chars)
        
        # 从字母和数字中随机选择剩余数量的字符
        letters = random.sample(string.ascii_letters + string.digits, 
                              self.length - self.special_chars)
        
        # 合并特殊字符和普通字符
        password = special + letters
        
        # 随机打乱所有字符的顺序
        random.shuffle(password)
        
        # 将字符列表连接成字符串
        return ''.join(password)